<?php
class Fabrica {
    protected $app;
    protected $view;
    public function __construct(){
        if (isset($_GET["app"])){
            // Escolhi nova op��o no Menu
            $this->app = $_GET["app"];
            $_SESSION["app"] = $this->app;
            // Limpo as op��es de filtro e p�gina
            $_SESSION["pag"] = null;
            $_SESSION["filtro"] = null;
        } else {
            // Se nao for enviada nenhuma aplicacao por get.
            // verifico se há alguma aplicação na session
            if(isset($_SESSION["app"])){
                // Se houver... Coloco na APP
                $this->app = $_SESSION["app"];
            } else {
                // Aqui coloco a app padrao.
                $this->app = 0;
            }
        }
        $this->setAplicacao();
    }
    public function getAplicacao(){
        echo $this->view->getHtml();
    }
    public function setAplicacao(){
        global $cnxIntra;
        $op = empty($_REQUEST["op"])?"listar":$_REQUEST["op"];
        //echo "<h1>Opera��o a ser executada: $op<h1>";
        /*
        if(!Autenticacao::checarNivelApp($this->app, $op)){
            $_REQUEST["op"] = 'listar';
        }
         *
         */
        switch ($this->app) {
            case "Processo":
                $m = new Processo($cnxIntra);
                $this->view = new VProcesso($m);
                break;
            case "Justica":
                $m = new Justica($cnxIntra);
                $this->view = new VJustica($m);
                break;
            case "Gaveta":
                $m = new Gaveta($cnxIntra);
                $this->view = new VGaveta($m);
                break;
            case "VSetor":
                $m = new Assunto($cnxIntra);
                $this->view = new VAssunto($m);
                break;
            case "ProcessoGaveta":
                $m = new Processo($cnxIntra);
                $this->view = new VProcessoGaveta($m);
                break;
            case "ProcessoAssunto":
                $m = new Processo($cnxIntra);
                $this->view = new VProcessoAssunto($m);
                break;
            case "ProcessoJustica":
                $m = new Processo($cnxIntra);
                $this->view = new VProcessoJustica($m);
                break;
            case "Pessoa":
                $m = new Pessoa($cnxIntra);
                $this->view = new VPessoa($m);
                break;
            case "PessoaFisica":
                $m = new PessoaFisica($cnxIntra);
                $this->view = new VPessoaFisica($m);
                break;
            case "PessoaJuridica":
                $m = new PessoaJuridica($cnxIntra);
                $this->view = new VPessoaJuridica($m);
                break;
            case "Usuarios":
                $m = new Usuario($cnxIntra);
                /*
                if($op == 'listar' || $op == 'Listar'){
                    $v = new VUsuario($m);
                }
                else{

                 *
                 */
                $this->view = new VWizardUsuario($m);
                //}
                break;
            case "Acompanhamento":
                $m = new Acompanhamento($cnxIntra);
                $this->view = new VAcompanhamento($m);
                break;
            case "VArquivoMorto":
                $m = new Processo($cnxIntra);
                $this->view = new VArquivoMorto($m);
                break;
            case "Solicitacao":
                $m = new Solicitacao($cnxIntra);
                $this->view = new VSolicitacao($m);
                break;
            case "Permissoes":
                $m = new Permissao($cnxIntra);
                $this->view = new VPermissoes($m);
                break;
            case "Acao":
                $m = new Acao($cnxIntra);
                $this->view = new VAcao($m);
                break;
            default:
                $apl = $this->app;
                $m = substr($apl, 1);
                $m = new $m($cnxIntra);
                $this->view = new $apl($m);
            }

        }
    }
    ?>